home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Monster Media 1994 #2
/
Monster Media No. 2 (Monster Media)(1994).ISO
/
pcboard
/
gamble11.zip
/
BJACK.PPE
(
.txt
)
next >
Wrap
PCBoard Programming Language Executable
|
1994-05-05
|
13KB
|
601 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 2.OO (plain) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
String STRING009
String STRING010
;------------------------------------------------------------------------------
:LABEL001
INTEGER004 = 0
INTEGER005 = 0
STRING003 = "n"
STRING004 = "n"
STRING008 = "n"
STRING001 = 0
Cls
PrintLn " @X4C┌─────────────────────────────────────────────────────────────────────┐@X07"
PrintLn " @X4C│ @X4EBlackjack (21) @X4C│@X07"
PrintLn " @X4C│@X4E by Brian Sweeney @ The Laser BBS (914.734.7045) @X4C│@X07"
PrintLn " @X4C│@XCA UNREGISTERED EVALUATION VERSION @X4C│@X07"
PrintLn " @X4C│@X40─────────────────────────────────────────────────────────────────────@X4C│@X07"
PrintLn " @X4C│@X4F You may bet as much time as you have today. If you loose, the @X4C│@X07"
PrintLn " @X4C│@X4F amount of time you bet will be deducted from your time limit for @X4C│@X07"
PrintLn " @X4C│@X4F today. If you win, the amount you bet will be added to the time @X4C│@X07"
PrintLn " @X4C│@X4F you have remaining for THIS CALL ONLY. When you logoff, you will @X4C│@X07"
PrintLn " @X4C│@X4F lose any time you won unless you deposit it in the time bank. @X4C│@X07"
PrintLn " @X4C│@X40─────────────────────────────────────────────────────────────────────@X4C│@X07"
PrintLn " @X4C│ @X4FThe rules are simple. The house must stay at 17 or higher and @X4C│@X07"
PrintLn " @X4C│ @X4Fmust hit at 16 or lower. Whoever has the higher hand wins. If @X4C│@X07"
PrintLn " @X4C│ @X4Fyou get over 21 you bust (and lose), in case of a tie the house @X4C│@X07"
PrintLn " @X4C│ @X4Fwins. @X4C│@X07"
PrintLn " @X4C│@X40─────────────────────────────────────────────────────────────────────@X4C│@X07"
PrintLn " @X4C│ @X4EYou have @X4F@TIMELEFT:4@ @X4Eminutes remaining today @X4C│@X07"
PrintLn " @X4C└─────────────────────────────────────────────────────────────────────┘@X07"
PrintLn
InputStr "How many minutes do you wish to gamble (Q)uit", STRING001, 14, 2, "1234567890qQ", 8
If (STRING001 == "") Goto LABEL001
If (STRING001 == "Q") End
If (STRING001 == "QQ") End
If (STRING001 == "0") Goto LABEL001
If ((STRING008 == "n") && (STRING001 <> 30)) Goto LABEL017
If (STRING001 > MinLeft()) Then
PrintLn
PrintLn "@X0EYou do not have that much time left!"
PrintLn
Wait
Goto LABEL001
Endif
Cls
AnsiPos 1, 1
Print "@X70┌─────────┐@X07 "
AnsiPos 1, 2
Print "@X70│@X71#########@X70│@X07 "
AnsiPos 1, 3
Print "@X70│@X71#########@X70│@X07 "
AnsiPos 1, 4
Print "@X70│@X71#########@X70│@X07 "
AnsiPos 1, 5
Print "@X70│@X71#########@X70│@X07 "
AnsiPos 1, 6
Print "@X70│@X71#########@X70│@X07 "
AnsiPos 1, 7
Print "@X70└─────────┘@X07 "
AnsiPos 13, 1
Print "@X70┌─────────┐@X07"
AnsiPos 13, 2
Print "@X70│ │@X07"
AnsiPos 13, 3
Print "@X70│ │@X07"
AnsiPos 13, 4
Print "@X70│ │@X07"
AnsiPos 13, 5
Print "@X70│ │@X07"
AnsiPos 13, 6
Print "@X70│ │@X07"
AnsiPos 13, 7
Print "@X70└─────────┘@X07"
Gosub LABEL015
AnsiPos 14, 2
Print "@X74"
Print STRING009
AnsiPos 16, 4
Print "@X74"
Print STRING005
AnsiPos 22, 6
Print "@X74"
Print STRING009
AnsiPos 1, 8
Print "@X0EHouse Total: "
INTEGER003 = INTEGER001
STRING006 = STRING005
STRING010 = STRING009
Print INTEGER003
Gosub LABEL014
AnsiPos 1, 10
Print "@X70┌─────────┐@X07"
AnsiPos 1, 11
Print "@X70│ │@X07"
AnsiPos 1, 12
Print "@X70│ │@X07"
AnsiPos 1, 13
Print "@X70│ │@X07"
AnsiPos 1, 14
Print "@X70│ │@X07"
AnsiPos 1, 15
Print "@X70│ │@X07"
AnsiPos 1, 16
Print "@X70└─────────┘@X07"
AnsiPos 2, 11
Print "@X74"
Print STRING009
AnsiPos 4, 13
Print "@X74"
Print STRING005
AnsiPos 10, 15
Print "@X74"
Print STRING009
INTEGER002 = INTEGER001
Gosub LABEL014
AnsiPos 13, 10
Print "@X70┌─────────┐@X07"
AnsiPos 13, 11
Print "@X70│ │@X07"
AnsiPos 13, 12
Print "@X70│ │@X07"
AnsiPos 13, 13
Print "@X70│ │@X07"
AnsiPos 13, 14
Print "@X70│ │@X07"
AnsiPos 13, 15
Print "@X70│ │@X07"
AnsiPos 13, 16
Print "@X70└─────────┘@X07"
AnsiPos 14, 11
Print "@X74"
Print STRING009
AnsiPos 16, 13
Print "@X74"
Print STRING005
AnsiPos 22, 15
Print "@X74"
Print STRING009
INTEGER002 = INTEGER002 + INTEGER001
AnsiPos 1, 17
Print "@X0EPlayer Total: "
Print INTEGER002
If ((STRING003 == "y") && (INTEGER002 < 12)) Then
Print " or "
PrintLn INTEGER002 + 10
Else
PrintLn " "
Endif
If ((STRING003 == "y") && (INTEGER002 == 11)) Then
STRING001 = STRING001 * 2
PrintLn
Print "@X0ABLACKJACK! You win "
Print STRING001
PrintLn " minutes!"
AdjTime STRING001
PrintLn
Wait
Goto LABEL001
Endif
:LABEL002
AnsiPos 1, 19
Print " "
AnsiPos 1, 19
InputStr "(H)it, (S)tand, (D)ouble down, (?=Help)", STRING007, 14, 1, "HhSsDd?", 8
If (STRING007 == "H") Goto LABEL003
If (STRING007 == "S") Goto LABEL005
If (STRING007 == "D") Goto LABEL006
If (STRING007 == "?") Goto LABEL011
If (STRING007 == "") Goto LABEL002
:LABEL003
If (STRING008 == "n") Gosub LABEL016
Gosub LABEL014
INTEGER006 = (INTEGER004 - 1) * 12 + 1
AnsiPos INTEGER006, 10
Print "@X70┌─────────┐@X07"
AnsiPos INTEGER006, 11
Print "@X70│ │@X07"
AnsiPos INTEGER006, 12
Print "@X70│ │@X07"
AnsiPos INTEGER006, 13
Print "@X70│ │@X07"
AnsiPos INTEGER006, 14
Print "@X70│ │@X07"
AnsiPos INTEGER006, 15
Print "@X70│ │@X07"
AnsiPos INTEGER006, 16
Print "@X70└─────────┘@X07"
AnsiPos INTEGER006 + 1, 11
Print "@X74"
Print STRING009
AnsiPos INTEGER006 + 3, 13
Print "@X74"
Print STRING005
AnsiPos INTEGER006 + 9, 15
Print "@X74"
Print STRING009
INTEGER002 = INTEGER002 + INTEGER001
AnsiPos 15, 17
Print "@X0E"
Print INTEGER002
If ((STRING003 == "y") && (INTEGER002 < 12)) Then
Print " or "
PrintLn INTEGER002 + 10
Else
PrintLn " "
Endif
If (INTEGER002 > 21) Goto LABEL010
If (INTEGER002 == 21) Goto LABEL005
:LABEL004
AnsiPos 1, 19
Print "@X0E "
AnsiPos 1, 19
InputStr "(H)it, (S)tand (?=Help)", STRING007, 14, 1, "HhSs?", 8
If (STRING007 == "H") Goto LABEL003
If (STRING007 == "S") Goto LABEL005
If (STRING007 == "?") Goto LABEL012
If (STRING007 == "") Goto LABEL004
:LABEL005
If (STRING008 == "n") Gosub LABEL016
If ((INTEGER002 < 12) && (STRING003 == "y")) INTEGER002 = INTEGER002 + 10
Gosub LABEL015
AnsiPos 1, 2
Print "@X70│ │@X07"
AnsiPos 1, 3
Print "@X70│ │@X07"
AnsiPos 1, 4
Print "@X70│ │@X07"
AnsiPos 1, 5
Print "@X70│ │@X07"
AnsiPos 1, 6
Print "@X70│ │@X07"
AnsiPos 2, 2
Print "@X74"
Print STRING009
AnsiPos 4, 4
Print "@X74"
Print STRING005
AnsiPos 10, 6
Print "@X74"
Print STRING009
INTEGER003 = INTEGER003 + INTEGER001
AnsiPos 14, 8
Print "@X0E"
Print INTEGER003
If ((INTEGER003 == 11) && (STRING004 == "y")) INTEGER003 = INTEGER003 + 10
If (INTEGER003 > 16) Then
Goto LABEL008
ElseIf (INTEGER003 < 17) Then
Goto LABEL007
ElseIf (INTEGER003 >= INTEGER002) Then
Goto LABEL008
Endif
:LABEL006
If (STRING008 == "n") Gosub LABEL016
If (MinLeft() < STRING001 * 2) Then
PrintLn
PrintLn
PrintLn "@X0EYou do not have that much time left!"
Goto LABEL002
Endif
STRING001 = STRING001 * 2
Gosub LABEL014
AnsiPos 25, 10
Print "@X70┌─────────┐@X07"
AnsiPos 25, 11
Print "@X70│ │@X07"
AnsiPos 25, 12
Print "@X70│ │@X07"
AnsiPos 25, 13
Print "@X70│ │@X07"
AnsiPos 25, 14
Print "@X70│ │@X07"
AnsiPos 25, 15
Print "@X70│ │@X07"
AnsiPos 25, 16
Print "@X70└─────────┘@X07"
AnsiPos 26, 11
Print "@X74"
Print STRING009
AnsiPos 28, 13
Print "@X74"
Print STRING005
AnsiPos 34, 15
Print "@X74"
Print STRING009
INTEGER002 = INTEGER002 + INTEGER001
AnsiPos 15, 17
Print "@X0E"
Print INTEGER002
Print " "
If (INTEGER002 > 21) Goto LABEL010
Goto LABEL005
:LABEL007
If (STRING008 == "n") Gosub LABEL016
Gosub LABEL015
INTEGER006 = (INTEGER005 - 1) * 12 + 1
AnsiPos INTEGER006, 1
Print "@X70┌─────────┐@X07"
AnsiPos INTEGER006, 2
Print "@X70│ │@X07"
AnsiPos INTEGER006, 3
Print "@X70│ │@X07"
AnsiPos INTEGER006, 4
Print "@X70│ │@X07"
AnsiPos INTEGER006, 5
Print "@X70│ │@X07"
AnsiPos INTEGER006, 6
Print "@X70│ │@X07"
AnsiPos INTEGER006, 7
Print "@X70└─────────┘@X07"
AnsiPos INTEGER006 + 1, 2
Print "@X74"
Print STRING009
AnsiPos INTEGER006 + 3, 4
Print "@X74"
Print STRING005
AnsiPos INTEGER006 + 9, 6
Print "@X74"
Print STRING009
INTEGER003 = INTEGER003 + INTEGER001
AnsiPos 14, 8
Print "@X0E"
Print INTEGER003
If (INTEGER003 > 21) Then
Goto LABEL009
ElseIf (INTEGER003 > 16) Then
Goto LABEL008
ElseIf (INTEGER003 < 17) Then
Goto LABEL007
ElseIf (INTEGER003 >= INTEGER002) Then
Goto LABEL008
Endif
:LABEL008
AnsiPos 1, 21
Print "@X0CHouse: "
Print INTEGER003
Print " @X0APlayer: "
PrintLn INTEGER002
PrintLn
If (INTEGER003 >= INTEGER002) Then
Print "@X0CYou lose "
Print STRING001
PrintLn " minutes."
AdjTime -STRING001
ElseIf (INTEGER003 < INTEGER002) Then
Print "You win "
Print STRING001
PrintLn " minutes"
AdjTime STRING001
Endif
Goto LABEL013
:LABEL009
AnsiPos 1, 21
PrintLn "@X0CThe house busts."
PrintLn
Print "@X0AYou win "
Print STRING001
PrintLn " minutes"
AdjTime STRING001
Goto LABEL013
:LABEL010
If (STRING008 == "n") Gosub LABEL016
AnsiPos 1, 21
PrintLn "@X0AYou have busted!"
PrintLn
Print "@X0CYou lose "
Print STRING001
PrintLn " minutes"
AdjTime -STRING001
Goto LABEL013
:LABEL011
STRING007 = ""
SaveScrn
Cls
PrintLn " @X4C┌─────────────────────────────────────────────────────────────────────┐@X07"
PrintLn " @X4C│ @X4EBlackjack - Help @X4C│@X07"
PrintLn " @X4C│@X40─────────────────────────────────────────────────────────────────────@X4C│@X07"
PrintLn " @X4C│@X4F You must get as close to 21 as you can w/o going over. You may @X4C│@X07"
PrintLn " @X4C│@X4F Hit, Stay or Double down: @X4C│@X07"
PrintLn " @X4C│@X4F @X4C│@X07"
PrintLn " @X4C│@X4F (H)it - Draw another card, the value of this card will be added to @X4C│@X07"
PrintLn " @X4C│@X4F your total points, if it equals more than 21 you lose. @X4C│@X07"
PrintLn " @X4C│ │@X07"
PrintLn " @X4C│ @X4F(S)tand - Stay with your current hand. The house will then draw, @X4C│@X07"
PrintLn " @X4C│ @X4F hitting when it has 16 or less and staying when it has @X4C│@X07"
PrintLn " @X4C│ @X4F 17 or more. @X4C│@X07"
PrintLn " @X4C│ │@X07"
PrintLn " @X4C│ @X4F(D)ouble down - Double your bet, draw one more card and then stay. @X4C│@X07"
PrintLn " @X4C│ @X4F This is reccomended if you have 11 and may only be @X4C│@X07"
PrintLn " @X4C│@X4F done when you have 2 cards. @X4C│@X07"
PrintLn " @X4C└─────────────────────────────────────────────────────────────────────┘@X07"
Wait
RestScrn
Goto LABEL002
:LABEL012
STRING007 = ""
SaveScrn
Cls
PrintLn " @X4C┌─────────────────────────────────────────────────────────────────────┐@X07"
PrintLn " @X4C│ @X4EBlackjack - Help @X4C│@X07"
PrintLn " @X4C│@X40─────────────────────────────────────────────────────────────────────@X4C│@X07"
PrintLn " @X4C│@X4F You must get as close to 21 as you can w/o going over. You may @X4C│@X07"
PrintLn " @X4C│@X4F Hit or Stay: @X4C│@X07"
PrintLn " @X4C│@X4F @X4C│@X07"
PrintLn " @X4C│@X4F (H)it - Draw another card, the value of this card will be added to @X4C│@X07"
PrintLn " @X4C│@X4F your total points, if it equals more than 21 you lose. @X4C│@X07"
PrintLn " @X4C│ │@X07"
PrintLn " @X4C│ @X4F(S)tand - Stay with your current hand. The house will then draw, @X4C│@X07"
PrintLn " @X4C│ @X4F hitting when it has 16 or less and staying when it has @X4C│@X07"
PrintLn " @X4C│ @X4F 17 or more. @X4C│@X07"
PrintLn " @X4C└─────────────────────────────────────────────────────────────────────┘@X07"
Wait
RestScrn
Goto LABEL004
:LABEL013
AnsiPos 1, 24
InputYN "Play again", STRING002, 14
If ((STRING002 == "Y") || (STRING002 == "y")) Goto LABEL001
If ((STRING002 == "N") || (STRING002 == "n")) End
:LABEL014
INTEGER004 = INTEGER004 + 1
INTEGER001 = Random(12) + 1
If (INTEGER001 == "1") Then
STRING005 = "Ace"
STRING009 = "A"
STRING003 = "y"
Endif
If (INTEGER001 == "2") STRING005 = " Two"
If (INTEGER001 == "3") STRING005 = "Three"
If (INTEGER001 == "4") STRING005 = "Four"
If (INTEGER001 == "5") STRING005 = "Five"
If (INTEGER001 == "6") STRING005 = " Six"
If (INTEGER001 == "7") STRING005 = "Seven"
If (INTEGER001 == "8") STRING005 = "Eight"
If (INTEGER001 == "9") STRING005 = "Nine"
If (INTEGER001 == "10") STRING005 = " Ten"
If (INTEGER001 == "11") STRING005 = "Jack"
If (INTEGER001 == "12") STRING005 = "Queen"
If (INTEGER001 == "13") STRING005 = "King"
If (INTEGER001 == "2") STRING009 = "2"
If (INTEGER001 == "3") STRING009 = "3"
If (INTEGER001 == "4") STRING009 = "4"
If (INTEGER001 == "5") STRING009 = "5"
If (INTEGER001 == "6") STRING009 = "6"
If (INTEGER001 == "7") STRING009 = "7"
If (INTEGER001 == "8") STRING009 = "8"
If (INTEGER001 == "9") STRING009 = "9"
If (INTEGER001 == "10") STRING009 = "10"
If (INTEGER001 == "11") STRING009 = "J"
If (INTEGER001 == "12") STRING009 = "Q"
If (INTEGER001 == "13") STRING009 = "K"
If (INTEGER001 == "11") INTEGER001 = "10"
If (INTEGER001 == "12") INTEGER001 = "10"
If (INTEGER001 == "13") INTEGER001 = "10"
Return
:LABEL015
INTEGER005 = INTEGER005 + 1
INTEGER001 = Random(12) + 1
If (INTEGER001 == "1") Then
STRING005 = "Ace"
STRING009 = "A"
STRING004 = "y"
Endif
If (INTEGER001 == "2") STRING005 = " Two"
If (INTEGER001 == "3") STRING005 = "Three"
If (INTEGER001 == "4") STRING005 = "Four"
If (INTEGER001 == "5") STRING005 = "Five"
If (INTEGER001 == "6") STRING005 = " Six"
If (INTEGER001 == "7") STRING005 = "Seven"
If (INTEGER001 == "8") STRING005 = "Eight"
If (INTEGER001 == "9") STRING005 = "Nine"
If (INTEGER001 == "10") STRING005 = " Ten"
If (INTEGER001 == "11") STRING005 = "Jack"
If (INTEGER001 == "12") STRING005 = "Queen"
If (INTEGER001 == "13") STRING005 = "King"
If (INTEGER001 == "2") STRING009 = "2"
If (INTEGER001 == "3") STRING009 = "3"
If (INTEGER001 == "4") STRING009 = "4"
If (INTEGER001 == "5") STRING009 = "5"
If (INTEGER001 == "6") STRING009 = "6"
If (INTEGER001 == "7") STRING009 = "7"
If (INTEGER001 == "8") STRING009 = "8"
If (INTEGER001 == "9") STRING009 = "9"
If (INTEGER001 == "10") STRING009 = "10"
If (INTEGER001 == "11") STRING009 = "J"
If (INTEGER001 == "12") STRING009 = "Q"
If (INTEGER001 == "13") STRING009 = "K"
If (INTEGER001 == "11") INTEGER001 = "10"
If (INTEGER001 == "12") INTEGER001 = "10"
If (INTEGER001 == "13") INTEGER001 = "10"
Return
:LABEL016
AnsiPos 1, 21
Print "@X0FPausing for 5 seconds to encourage registration..."
Delay 91
AnsiPos 1, 21
Print " "
Return
:LABEL017
AnsiPos 1, 21
PrintLn "@X0FIn this unregistered version you may only bet 30 minutes each time."
Wait
Goto LABEL001
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 3 End
; 4 Cls
; 5 Wait
; 57 Goto
; 87 Let
; 128 Print
; 73 PrintLn
; 96 If
; 5 AdjTime
; 3 InputStr
; 1 InputYN
; 12 Gosub
; 3 Return
; 1 Delay
; 92 AnsiPos
; 2 SaveScrn
; 2 RestScrn
;
;
; ■ Functions used :
;
; 2 -
; 5 *
; 21 +
; 2 -
; 87 ==
; 1 <>
; 7 <
; 6 >
; 3 >=
; 16 !
; 6 &&
; 2 ||
; 2 Random()
; 2 MinLeft()
;
;------------------------------------------------------------------------------
;
; Analysis flags : A
;
; A - Adjust online time remaining ■ 5
; Program modify the amount of online time remaining, this may
; be a way to bypass time limits
; ■ Search for : ADJTIME
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 0 For/Next
; 0 While/EndWhile
; 16 If/Then or If/Then/Else
; 0 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------